.TH LEGFIT 3M
.SH NAME
legfit
.SH DESCRIPTION
subroutine legfit.f

source
  Bevington, pages 155-157.

purpose
  make least-squares fit to data with a Legendre polynomial
    y = a(1) + a(2)*x + a(3)*(3x**2-1)/2 + ...
      = a(1) * (1. + b(2)*x + b(3)*(3x**2-1)/2 + ... )
      where x = cos(theta)

usage
  call legfit (theta, y, sigmay, npts, norder, neven, mode,
    ftest, yfit, a, sigmaa, b, sigmab, chisqr)

description of parameters
  theta  - array of angles (in degrees) of the data points
  y      - array of data points for dependent variable
  sigmay - array of standard deivations for y data points
  npts   - number of pairs of data points
  norder - highest order of polynomial (number of terms - 1)
  neven  - determines odd or even character of polynomial
           +1 fits only to even terms
            0 fits to all terms
           -1 fits only to odd terms (plus constant term)
  mode   - determines mode of weighting least-squares fit
           +1 (instrumental) weight(i) = 1./sigmay(i)**2
            0 (no weighting) weight(i) = 1.
           -1 (statistical)  weight(i) = 1./y(i)
  ftest  - array of values of f(l) for an f test
  yfit   - array of calculated values of y
  a      - array of coefficients of polynomial
  sigmaa - array of standard deviations for coefficients
  b      - array of normalized relative coefficients
  sigmab - array of std. deviations of relative coefficients
  chisqr - reduced chi square for fit

subroutines and function subprograms required
  matinv (array, nterms, det)
    inverts symmetric two-dimension matrix of degree nterms
      and calculates its determinant

comments
  valid for npts up to 100 and order up to 9
  one source line modified - cos substituted for dcos
